1. Field of the Invention
This invention relates to memories, and more particularly to burst operations in memories.
2. Description of the Related Art
To improve memory data rates, some memories support burst operations. In a burst operation, multiple memory locations are accessed in response to a single starting address. At the beginning of a burst operation, a row address AX (FIG. 1) is delivered to X-decoders 14. X-decoders 14 select the corresponding row of memory cells in memory array 12. (In FIG. 1, rows are vertical, and columns are horizontal.) The row remains selected for the duration of the burst operation. The starting column address AY is delivered to column address counter 18. Counter 18 counts up by 1 starting from address AY on each cycle of clock signal CLK, and provides the count A to Y-decoders 16. This causes Y-decoders 16 to select consecutive columns, at consecutive column addresses A, in consecutive cycles of clock CLK. As a result, memory is accessed sequentially. The data D are transferred between the consecutive memory locations (i.e., memory locations at consecutive addresses) and an input/output (I/O) pad 30 at the frequency of clock CLK. The data rate is improved because the same memory row remains selected for multiple memory locations and because, therefore, the row decoding need not be done for each memory location.
Disadvantageously, column address counter 18 operates at the same frequency as the data rate on I/O pad 30 (the frequency of clock CLK).
FIG. 2 shows a memory in which the column address counter 18 can operate at only half of the data rate on pad 30. The memory uses a two-bit prefetch technique known as xe2x80x9c2n rulexe2x80x9d. The memory cells are arranged in two arrays 12.0, 12.1. Memory array 12.0 contains even memory locations (that is, memory locations at even column addresses; when a column address is even, the entire row-and-column address is even assuming the column address is the least significant portion of the entire address). Memory array 12.1 contains odd locations. In a burst operation, an even location in array 12.0 and an odd location in array 12.1 at consecutive addresses are accessed in parallel at one half of the frequency of clock CLK, and are transferred between the memory arrays and a buffer 36 at one half of the clock frequency. The data are transferred between buffer 36 and I/O pad 30 serially at the clock frequency.
The burst operation proceeds as follows. The row address (not shown) is supplied to both of the arrays 12.0, 12.1, to select one row in each array. Column address counter 18 receives the most significant bits AY[n:1] of the starting column address. The least significant bit AY[0] is not used by the counter. The counter counts up from AY[n:1] by 1 on every other clock cycle. The counter""s output (count) signal A[n:1] is delivered to Y-decoder blocks 16.0, 16.1 of respective arrays 12.0, 12.1. Count bits A[n:1] are all but the least significant bit (LSB) of the column address.
Y-decoder blocks 16.0, 16.1 are identical. Y-decoder block 16.0 selects an even column. For this column, the column address LSB A[0]=0. Y-decoder block 16.1 select an odd column, corresponding to A[0]=1. As a result, two memory locations at column addresses  less than A[n:1],0 greater than ,  less than A[n:1],1 greater than are accessed in parallel at one half of the clock frequency, with the data transferred to or from buffer 36. The data are transferred between buffer 36 and I/O pad 30 serially at the clock frequency.
The 2n rule memory of FIG. 2 is not well suited for burst operations that access memory non-sequentially or not at an even address boundary. Examples of such burst operations are burst operations defined by standards for synchronous dynamic random access memories (SDRAMs) and described in Table 1 below. The sequence of memory locations accessed in each burst operation of Table 1 is determined by the burst length (2, 4, or 8), burst mode (sequential or interleaved), and the three last significant bits AY[2:0] of the starting column address. The burst length and mode can be programmed into the SDRAM""s mode register (not shown) before a READ or WRITE command is issued to the SDRAM for the burst operation.
Columns 3 and 4 of Table 1 show the sequence in which the memory locations are accessed. For example, if the burst length is 4, the starting address is xe2x80x9cx11xe2x80x9d (i.e. AY[1:0]=11), and the mode is sequential, the locations are accessed in the order xe2x80x9c3,0,1,2xe2x80x9d. This means the two LSBs A[1:0] of the accessed columns assume consecutively the values 3, 0, 1, 2 (binary 11, 00, 01, 10). The remaining column address bits A[n:2] are the same for each location, and are equal to the starting address bits AY[n:2]. For the burst length of 2, Table 1 provides the values of one LSB A[0] of the column address. The remaining column address bits A [n:1]=AY[n:1] remain the same for the burst operation. For the burst length of 8, Table 1 provides the values of the three LSBs A[2:0]. The other address bits A[n:3]=AY[n:3] remain the same.
Each burst operation defined by Table 1 performs access to a block of consecutive memory locations, but the memory locations within the block can be accessed non-sequentially. The 2n-rule memory of FIG. 2 cannot prefetch data for non-consecutive locations. In addition in Table 1, a pair of locations accessed sequentially can start at an odd address boundary. See for example the case of burst length=4, starting column address AY[2:0]=x01, sequential mode (locations 1,2 to be accessed sequentially start at an odd address boundary). In the memory of FIG. 2, locations can be accessed in prefetch (i.e., in parallel) only if they start at an even address boundary. Therefore, there is a need for an alternative prefetch memory architecture that allows prefetches for non-consecutive memory locations and for locations starting at an odd boundary while allowing the address generation logic to operate at a lower rate than the data rate on the external input or output terminals (such as I/O pad 30).
Allowing the address generation logic to operate at a lower rate is particularly desirable in double data rate (DDR) SDRAMs which have emerged as a higher bandwidth memory solution than conventional SDRAMs. In DDR SDRAMs, data are provided on the external terminals on both the rising and falling clock edges. Thus, the data transfer rate is doubled. Address generation logic that can operate at a lower frequency is therefore particularly desirable.
In some embodiments of the present invention, a prefetch can be performed for non-consecutive memory locations and/or memory locations starting at an odd address boundary. In some embodiments, column decoder circuitry receives a count signal from a counter and selects at least two columns of memory cells in response to each value of the count signal. The count signal does not necessarily represent address bits. The two columns selected by their column decoder satisfy at least one of the following conditions (A) and (B):
(A) the two columns have non-consecutive column addresses;
(B) the two columns have consecutive column addresses starting at an odd column address boundary.
In some embodiments, a memory of the present invention comprises first column decoder circuitry for selecting an even column, and second column decoder circuitry for selecting an odd column. The first column decoder circuitry is not identical to the second column decoder circuitry. In a burst operation, the first column decoder circuitry and the second column decoder circuitry select an even column and an odd column at the same time. The even and odd columns satisfy at least of the above conditions (A) and (B).
Other features and advantages of the invention are described below. The invention is defined by the appended claims.